---
title: AutoComputeUtils 自动计算工具
icon: Calculator
relatedFile: app/src/core/service/dataGenerateService/autoComputeEngine/AutoComputeUtils.tsx
---

服务用途

该服务提供了一系列用于自动计算引擎的实用工具函数，主要用于处理项目图中的文本节点（TextNode）和区域节点（Section）之间的关系，以及管理它们的文本内容。它还包含字符串到数字的转换功能，并能识别特定格式的逻辑节点。

## API

### `getParentTextNodes(node: TextNode): TextNode[]`

获取给定文本节点的所有直接父节点，并根据它们的X坐标进行排序（X坐标小的在前）。

### `getParentEntities(node: ConnectableEntity): ConnectableEntity[]`

获取给定文本节点的所有直接父实体（包括文本节点和其他可连接实体），并根据它们的X坐标进行排序（X坐标小的在前）。

### `getChildTextNodes(node: TextNode): TextNode[]`

获取给定文本节点的所有直接子文本节点，并根据它们的X坐标进行排序（X坐标小的在前）。

### `getNodeOneResult(node: TextNode, resultText: string)`

更新给定文本节点的所有子文本节点的名字为指定文本。如果该节点没有子文本节点，则会创建一个新的文本节点作为其子节点，并设置其文本内容。

### `getSectionOneResult(section: Section, resultText: string)`

更新给定区域节点的所有子文本节点的名字为指定文本。如果该区域节点没有子文本节点，则会创建一个新的文本节点作为其子节点，并设置其文本内容。

### `getSectionMultiResult(section: Section, resultTextList: string[])`

根据提供的文本列表，更新给定区域节点的所有子文本节点的名字。如果子节点数量不足，则会创建新的文本节点以匹配列表长度；如果子节点数量超出，则只修改与列表长度相符的部分，并按Y坐标排序。

### `generateMultiResult(node: TextNode, resultTextList: string[])`

根据提供的文本列表，更新给定文本节点的所有子文本节点的名字。如果子节点数量不足，则会创建新的文本节点以匹配列表长度；如果子节点数量超出，则只修改与列表长度相符的部分，并按Y坐标排序。

### `stringToNumber(str: string)`

将给定的字符串转换为浮点数。如果字符串包含变量，则会先解析变量的值再进行转换。

### `isNodeConnectedWithLogicNode(node: ConnectableEntity): boolean`

判断一个可连接实体是否直接连接到逻辑节点（即其父节点或子节点中是否存在名字符合逻辑节点格式的文本节点）。

### `isNameIsLogicNode(name: string): boolean`

判断给定的字符串是否符合逻辑节点的命名格式（以`#`开头和结尾，中间只包含数字、大写字母和下划线）。
